\setlength{\unitlength}{0.1mm}
\begin{figure}

\begin{picture}(1370,1080)(0,-1080)

\put(  50,  -80){\dashbox{5}(280,80)[c]{{\file grid data}}}
\put( 190,  -80){\vector(0,-1){60}}

\put(   0, -220){\framebox(380,80)[c]{grid preprocessor}}
\put( 190, -220){\vector(0,-1){60}}

\put(  50, -360){\dashbox{5}(280,80)[c]{{\file mod\_def.ww3}}}
\put( 190, -360){\vector(0,-1){380}}
\put( 190, -460){\vector(1,0){60}}
\put( 330, -320){\line(1,0){560}}
\put( 890, -320){\vector(1,1){100}}
\put( 890, -320){\line(1,-1){80}}
\put( 970, -400){\vector(0,-1){160}}

\put( 250, -500){\framebox(280,80)[c]{initial cond.}}
\put( 530, -460){\vector(1,0){60}}

\put( 590, -500){\dashbox{5}(280,80)[c]{{\file restart.ww3}}}
\put( 870, -500){\vector(1,-1){60}}

\put( 590, -640){\makebox(280,80)[c]{{\file restart.ww3}}}
\put( 590, -680){\makebox(280,80)[c]{{\file nest.ww3}}}
\put( 590, -680){\dashbox{5}(280,120)[c]{ }}

\put( 930, -640){\dashbox{10}(280,80)[c]{{\code wave model}}}
\put( 930, -600){\vector(-1,0){60}}
\put( 870, -600){\vector(1,0){60}}

\put( 590, -860){\makebox(280,80)[c]{{\file partition.ww3}}}
\put( 590, -780){\makebox(280,80)[c]{{\file out\_pnt.ww3}}}
\put( 590, -820){\makebox(280,80)[c]{{\file out\_grd.ww3}}}
\put( 590, -860){\dashbox{5}(280,170)[c]{ }}
\put( 970, -780){\vector(-1,0){100}}
\put( 590, -780){\vector(-1,0){60}}

\put( 970, -640){\vector(0,-1){240}}
\put( 830, -960){\makebox(280,80)[c]{{\file log.ww3}}}
\put( 830,-1000){\makebox(280,80)[c]{{\file test.ww3}}}
\put( 830,-1000){\dashbox{5}(280,120)[c]{ }}

\put(1170, -640){\vector(0,-1){100}}
\put(1170, -740){\vector(0,1){100}}
\put(1030, -820){\makebox(280,80)[c]{{\file track\_i.ww3}}}
\put(1030, -860){\makebox(280,80)[c]{{\file track\_o.ww3}}}
\put(1030, -860){\dashbox{5}(280,120)[c]{ }}

\put( 150, -820){\makebox(380,80)[c]{output}}
\put( 150, -860){\makebox(380,80)[c]{postprocessing}}
\put( 150, -860){\framebox(380,120)[c]{ }}

\put(1020, -560){\line(0,1){280}}
\put(1020, -280){\line(1,0){320}}
\put(1210, -620){\line(1,0){130}}
\put(1340, -620){\line(0,1){340}}
\put(1020, -370){\makebox(320,80)[c]{program}}
\put(1020, -410){\makebox(320,80)[c]{shell}}
\put(1020, -450){\makebox(320,80)[c]{or}}
\put(1020, -490){\makebox(320,80)[c]{integrated}}
\put(1020, -540){\makebox(320,80)[c]{program}}

\put(1040,  -80){\dashbox{5}(280,80)[0,0]{{\file input files}}}
\put(1170,  -80){\vector(0,-1){60}}

\put( 990, -220){\framebox(380,80)[c]{input preprocessor}}
\put(1170, -220){\vector(0,-1){60}}

{\scriptsize
\put(  50,-1010){\dashbox{5}(150,40)[0,0]{{\file file}}}
\put( 240,-1010){\dashbox{10}(150,40)[c]{{\code subrout.}}}
\put( 430,-1010){\framebox(150,40)[c]{program}}
\put( 140,-1050){\vector(1,0){60}}
\put( 220,-1070){\makebox(400,40)[l]{data transfer by file}}
\put(   0,-1090){\framebox(630,150){ }}                 }

\end{picture}

\caption{Basic program elements and data flow.}
\label{fig:run_elements}

\botline

\end{figure}
